The Math Of Getting To Hero Rank In Halo Infinite
Table of Contents
Overview #
It finally happened - after a bit more than a year of playing Halo Infinite, I’ve finally reached the end of the line. The pinnacle of experience-based rank, if you will - Hero.
It’s, by any means, a meaningless achievement. Mostly because it’s all just a game, but it was a fun one to try and capture for the data that comes along with it. If you’re reading this, you know that I am Halo data nerd - if I’d go for Hero, I wanted to compute detailed stats on getting there.
Now, before anyone asks - “What is the fastest way to get to Hero? Which game mode should I play?” The answer is - whichever you are good at.
Do not take people’s opinion on whether it’s Big Team Battle (BTB) or Gruntpocalypse to maximize your XP gain at face value. Some people play BTB and end up with six kills per game with an aggregate XP score of 1,200. The same people will play Infection and will dominate with a total of 9,000 XP and beyond. If maximizing XP gain is what you’re after then figure out what you’re good at and genuinely enjoy and play that mode. That’s it. That’s the secret.
Before we go into the data and all the graphs, I wanted to spend some time looking back at the some of the high-level observations I’ve had through the year of getting to maximum rank. You can press the big button below to just go to the insights and skip my rambling.
The good #
Halo is something near and dear to me and the journey to Hero has been awesome. There is very little to complain about and a lot to rave about.
Super Husky Raid #
My favorite social game mode. It’s Husky Raid with supercharged campaign weapons. I dreaded the regular Husky Raid, but when the Match Composer came out and I could select just Super Husky Raid to queue for, my satisfaction with the playlist improved dramatically.
Who doesn’t like blasting the enemy team with a Ravager from behind a Drop Wall? Why not have the S7 Flexfire with easy aim as you cruise through the center of the map “No Scope"-ing everyone in sight? You will see in the stats below that this is basically the game mode I climbed to Hero in.
And while we’re on the topic of Super Husky Raid, here are the weapons I liked the most:
- S7 Flexfire - hand it to me and I will run to the end of the map and clear out the path to the flag. Favorite tool.
- MK50 Sidekick - easy to handle, fast rate of fire, pierces shields like butter.
- Ravager Rebound - use it from behind the Drop Wall and the opposing team will have zero chance of spawning as long as you have a charge.
- M41 SPNKr - when the rockets don’t disappear into the aether, it’s wonderful for doing a lot of damage quickly and to grouped enemies.
- CQS48 Bulldog (Convergence Variant) - perfect for close fights. Unmatched performance in terms of time-to-damage ratio.
- Heatwave - once you learn how to land “Bank Shot” kills, it becomes so fun to use.
- Sentinel Beam - not a lot of ammo, but if you need to clear out the flag area quickly this is a must-have.
- Stalker Rifle - “What if we made the standard sniper rifle easier to use?”
- Disruptor - I am a big fan of its damage-over-time behavior. And mistakes it causes on the enemy team - the damaged opponent moves closer to their teammates, all of a sudden weak teammates disappear.
- BR-75 - a classic, and works just as well in Super Husky Raid.
- Unbound Plasma Pistol - since the latest game update, using this even without charging it will absolutely destroy the enemy team. Extremely useful in close quarter combat and at medium-range.
- VK78 Commando - once I got the hang of the aiming mechanics (recoil on this gun is pretty intense) it becomes an extremely convenient tool in your Spartan toolbox.
- MA40 Assault Rifle - just like the BR-75, yet another classic that just works when you need it to work.
- Pinpoint Needler - extremely effective against enemies that do not use the Thruster.
- Shock Rifle - good as a substitute for a sniper rifle if you also want to have some… shock value. Just make sure to aim for the head.
There are also a few that are not my favorites:
- Mangler - a-OK but requires proximity and luck that the enemy is not moving much.
- Gravity Hammer - both the standard and Diminisher of Hope variants are wildly inconsistent. This comes as a surprise to no one. Sometimes you can use it in close quarters to no effect, sometimes the enemy player hits you from half a mile away, launching your limp Spartan husk across the map.
- Hydra - just useless 99.99% of the time. Slow reload times, impact is imprecise without homing missiles, and if you’re using it not from behind a Drop Wall, good luck with doing any significant damage.
- Cindershot - the physical incarnation of the word “meh.” It works sometimes but the impact is imprecise and often in close quarters it’s close to the usefulness of the Hydra.
- Pulse carbine - can’t really say much positive about this. Melts the enemy shields? Yes. Helpful after that? Not really, especially because in my experience I usually spawned with a Plasma Pistol or a Sword as a secondary weapon.
- Energy Sword - couldn’t care less about it. By the time you try to use it, someone is already melting your shields.
Also, what’s up with the Drop Wall being made out of parchment paper on my team, but when the enemy team uses it - it’s impenetrable titanium?
Supportive and positive community #
The vast majority of people I played with (and against) are great. They are supportive, funny, and helpful. I tried to reciprocate as much as possible. One time, I noticed that a player was really underperforming so I called it out in chat, leading to this exchange (yes, sometimes I can mildly trash talk):
The same player was on my team for another match, which then led to this extremely positive exchange over Xbox messages:
On several occasions my team bonded over a shared Homer Simpson reference:
Sometimes, I had to nudge people to be a bit more positive, with a really good outcome:
Other times people were genuinely surprised by me just telling people that they have a nice flag capture run:
And other times, I ran into people that I previously had positive in-game interactions with:
You’d be surprised how nice most of the players are if you act nice in the first place. So much so that the negativity can be tuned out almost entirely. Be kind. It’s a superpower.
Supportive developers and franchise builders #
I’ve had extremely positive interactions with everyone on the Halo production team. From the folks at Halo World Championship 2023 (and 2024), the Halo eSports leads who came in clutch with event planning, Halo franchise representatives that were kind enough to help me with some of the swag, to an engineer who gave me a unique look inside the Halo museum. I have nothing but positive things to say about everyone I’ve interacted with at Halo Studios.
It’s easy to be a Halo nerd when the folks building it are wonderful. I am incredibly thankful for their willingness to engage and all the opportunities they allowed me to tap into.
Easily available statistics #
The API for Halo Infinite is excellent and gives an unparalleled view into the match statistics. I wrote about it extensively on my blog and continue to document it here on OpenSpartan. I built an entire library that encapsulates every single public API call and then on top of it - OpenSpartan Workshop (which is also open source). This tool is what I used to ultimately build out this blog post and the analysis in it.
Without an accessible API to provide detailed statistics (including data in film files) this wouldn’t have been possible.
Plenty of players around the clock #
At any time of the day I could find players in most of the playlists I played. Maybe it’s a West Coast privilege, but my wait time has never been unreasonable with a few exceptions (looking at you, Ranked Tactical).
If you are curious about concrete wait times you can also check out my open source project - openspartan/waittimes-datasets
(you can learn more about it on this blog). I’ve been aggregating wait times from the US West Coast in ten-minute intervals.
The less good #
There were a few things that I noted that were less than ideal. By no means is this something that took away from all the positive experiences I’ve had, but I thought I’d note them anyway for posterity. I think there is always room for improvement in anything.
Toxic players #
And just like there are really awesome community members, there are also toxic players. Thankfully they are not extremely common, but when they reared their ugly head, their behavior did sour the spirits in the team.
Now, don’t get me wrong - I am no stranger to friendly trash talk, but there is a difference between jabs and straight-up offensive comments. Almost every week I would run into at least one character who would be extremely inappropriate to their team. They would berate their teammates, would spew slurs over voice chat, and would blame everyone but themselves for losing a game. I’ll provide some receipts 😎
And before you go “Well in the Halo 3 days…” - no, that doesn’t make it okay. Just because other lobbies were toxic in the past doesn’t mean we should tolerate this behavior today.
Do keep in mind that to protect… well, not the innocent, I pixelated the names of those that were posting bad messages. The last thing I personally want to do is give those folks any attention. If you see a message you sent in these screenshots, I hope you take a moment to reflect as to why you did that and how you think it made your teammates feel. Do better.
One of the things I’ve seen is people (very few, thankfully) get really sensitive about is trying to tell them what’s happening in the game or maybe where they can look to see an opposing players:
Yes, sometimes the filter doesn’t properly kick in and you see the bad words pop up. Threats were fairly uncommon, but some folks took a match a little too seriously.
The funny thing is that the folks complaining were almost universally the ones at the bottom of the board or doing poorly. I have never seen a top player rail against their team. As a matter of fact, they were usually appreciative of any suggestions that can give the team an advantage.
Apparently even if I did well and thanked others, that was not good enough 🤣
What I started doing is when I see someone behaving like an ass in chat and being overly toxic, I would just spend time enjoying the scenery. The skies around the maps are beautiful - you should check them out. Why chase the flag or the enemies when you can look over the landscape?
What’s funny is that after this, the truly chatty toxic players that were in a party were suddenly no longer in the party in the next few matches. Who knows, maybe this did have some kind of positive impact on my game quality. Apparently the same people that are being toxic care a lot about winning games, and when they act badly, their likelihood of winning will just drop if they’re in the game with me. Maybe this can be an indirect lesson in treating your team like people that deserve dignity during the match.
What I’ve also seen is that the toxicity spreads past the in-game chat and into the Xbox messaging. On numerous occasions those that would trash-talk me in the game would then non-stop (until I blocked them) try to add me to a party or invite me to the game so that they can then harass me over voice chat (ask me how I know that’s what they’re trying to do). Talking to a few other folks that have played Halo with me they mirrored my experience with this.
Most of the text messages through Xbox chat, though, would be downright hilarious. The vast majority of them would pop up after I had a particularly bad game (which can happen to anyone, by the way). I hypothesize that most of them are pretty tame because the Xbox enforcement is much more harsh and they’re a bit more… reserved when it comes to insults.
Now, I have a pretty thick skin and these messages never really bothered me much personally but if this is the behavior that I see, you can only imagine what kind of harassment others can get. It’s a game - it’s really not that important in the grand scheme of things. Treat it as such.
And some are wondering why “nobody is comming anymore” - that’s why. Because if I had a long day, do I want to jump in for some Halo and be called a slur, or would I rather just hear the game environment? I’ll choose the latter any day.
Select few maps #
Within Super Husky Raid, two maps became somewhat of a drag for me - Disciple and Scarlett’s Landing. My process for playing a match became this:
Disciple has a problem with stairs - sometimes when you go after a flag, you get stuck on stairs and can’t move forward, giving crucial moments to the enemy team to repel your incursion into their base.
Couple that with higher than usual pings most of the time and it becomes almost entirely unplayable. When I saw the map pop up, I just quit the game because I haven’t had a good play there to this day (every game on this map is somehow iffy). My feelings about the map can be best summarized by this capture:
Scarlett’s Landing has a problem with… itself. I’ve had some really great games there, with moments like this:
But almost consistently, I get large performance drops and glitches. Just watch this to see what I am talking about:
So, this became a “Are you feeling ready to deal with this today?” kind of map.
Team balancing #
Super Husky Raid is inherently a game of imperfect balance because the weapon drops can dictate the team performance, but I swear sometimes the game would be extremely skewed in my favor or against me (more often the latter), often worsened by players quitting halfway through. I became really good at predicting the outcome of the game by the first few minutes. Check these out:
Game bugs #
These ranged from “Huh, this is kind of funny” to “Oh come on now…”. I’ve had one case (not on any of these maps) where the enemy flag was stuck in the ceiling and nobody on our team could get it back to score:
Have you ever seen the Drop Wall spin? I have!
On my PC, about a dozen times I had the entire PC black-screen and reboot because of a hard crash that apparently took down everything.
On the Xbox, in the Rumble Pit playlist, a few times the game caused the Xbox to just hang and I had to physically unplug it to get it back to a working state.
The dreaded EAC message would pop up almost every game (although it should be fixed with the latest update).
The metrics #
Now, let’s dig through the numbers! For the metrics that I will be looking at, I am exclusively focusing on matches that were played since June 20, 2023 - the day when career ranks were launched. For each of the stats, you can also look at the associated SQLite queries if you want to also get the same data for your stats collected with OpenSpartan Workshop.
The data is aggregated directly from the SQLite database inside a Jupyter notebook that automatically performs the end-to-end analysis (you can check it out on GitHub).
If you want to compute the stats for yourself, you can see all the queries and code in the Jupyter notebook on GitHub.
Summary of stats #
I had almost three thousand matches prior to the career ranks coming in place so the stats here are a little bit different from what you’d see for my account on Halo Waypoint. As I mentioned above - I am only counting the matches that happened once career XP became earnable.
Stat | Value |
---|---|
Matches Played | 4,699 |
Wins | 2,169 |
Losses | 2,343 |
Ties | 53 |
Win Rate | 46.15% |
Matches Not Finished | 134 |
Kills | 69,138 |
Deaths | 63,516 |
Assists | 21,345 |
Callout Assists | 15,193 |
Shots Fired | 1,322,236 |
Shots Hit | 490,720 |
Damage Dealt | 17,238,914 |
Damage Taken | 15,544,819 |
Players I played with the most #
These are the top 10 players that were on the same team with me during any of the matchmade games for the analysis period. I’ve excluded bots (IDs starting with bid
) and my friends since those would skew the table quite a bit.
Gamertag | Matches Played |
---|---|
modbog9590 |
13 |
Floozii |
12 |
StRiK2fREeDom |
12 |
WobblyLettuce97 |
11 |
DarkZero9219 |
11 |
SplitYourWig100 |
11 |
Toss5434 |
11 |
IVA the LT |
10 |
kaughtabodi |
10 |
psilocybe007 |
10 |
Players I played against the most #
Here are the top 10 players I played against. Just like with the previous table, I’ve excluded bots (IDs starting with bid
) and my friends since those would skew the table quite a bit. You might wonder - friends on the opposing team? That’s what happens when you play Rumble Pit 🤣
Gamertag | Matches Played |
---|---|
dabsnstuff |
21 |
Blcksheepcuh |
17 |
modbog9590 |
16 |
XBOXBRYAN96 |
16 |
Chrimbnasty |
16 |
DrewStylez |
16 |
Gabo I am |
14 |
WutangDC10 |
13 |
Brightbuddy |
13 |
WobblyLettuce97 |
13 |
Very little overlap over thousands of matches.
Monthly matches #
As you can see, I really made a push for Hero in August and September because I wanted to get it done before Halo World Championship 2024 in Seattle.
Weekly matches #
Matches in progress joined #
Looking at the data for the matches that I’ve joined that were already in progress, it’s almost universally clear that I was more likely to lose that match than attain any other outcome. This is probably because me joining a match in progress means that I am substitute for other players who left very likely because the match was very lopsided (e.g., they got spawn-trapped with hammers in Husky Raid). This means that me joining is not very likely to change the outcome that has already been very close to finalizing.
On multiple occasions I’ve joined a match where the third flag was already in the enemy hands and they were just waiting to score at their base while giving their teammates a chance to gain more XP. Very unlikely I would have any positive impact on the game in that situation.
Matches in progress left #
As time went on, I also started being much more upfront about leaving games I didn’t want to be a part of. Remember how I mentioned that Disciple and Scarlett’s Landing were glitchy and I was almost guaranteed a bad time? I would just quit those matches when I saw the map, so the numbers went up and to the right as I became much more shameless about my preferences. As far as I can’t tell, I wasn’t penalized for that at all so if you see maps you don’t like - just leave.
And if we break this down by map, it becomes immediately clear which ones I didn’t like the most:
The chart above doesn’t represent well matches that I left because the game crashed or because I got tired of being spawn-camped for five minutes, but it does tell a story - Disciple is just a non-starter for me.
I forgot to mention that Formation made that list too, albeit not because of any glitches - I just feel like the map is way too long and unwieldy for Husky Raid, but that’s more of a personal preference.
Mode breakdown #
Absolutely no surprises there about this next graph. I played a lot of Super Husky Raid, Husky Raid, Tactical Slayer, as well as Ranked Tactical Slayer.
Again, as I mentioned earlier - I played these modes because I am relatively good at them. Not bagging on any others, and if you’re optimizing for XP - figure out which ones you can shine in.
Map breakdown #
And just like with the previous graph, the maps here reflect the game types I played the most - Super Husky Raid and Husky Raid.
Corpo and Diminished were the clear winners of the map lottery. These are actually the two maps that I think are fantastic for Husky Raid-style games - linear, unobstructed, and perfect for quick team rushes.
Win/lose per week #
My consistency of playing Halo Infinite has been all over the place on the path to Hero. That’s not necessarily a bad thing - I only played when I felt like it, and at the end I was highly motivated to write this blog post, so the volume of games went up.
But the above is not enough. Let’s also compute the win ratio week-over-week. To do that, I use this simple formula:
\text{Win Ratio} = \frac{\text{Matches Won} + \text{Matches Tied}}{\text{Total Matches Played}}
This yields the following weekly snapshot:
It certainly felt like the game sometimes was beating me up with more losses than wins. Which, if you think about it, probably makes sense in the scope of Husky Raid matches. If we look at the distribution of weekly win ratios, we get this:
That looks about right - most times I stuck somewhere around 47% of matches won. I have zero context on how common it is depending on skill level or where I fall in the broader playerbase, but I think I am about as much of an average player as I can be.
Match outcomes are irrelevant as a standalone parameter when it comes to optimizing for XP to get to Hero. The XP you earn for performing well or winning the game accrue to the battle pass (i.e., operation) rather than career.
That being said, I also felt that sometimes I would go on a winning streak, and other times - a completely abysmal losing streak. Let’s see what the weekly longest winning streaks were.
I topped out at about 10 games in a row being won before the streak was broken. Not terribly bad! Not super-common either, which becomes clear if we look at the distribution:
Losing streaks, on the other hand, are a bit different on the surface (way higher extremes, that is):
But the distribution tells a story similar to win streaks:
The median is about the same as we saw for winning - 5 matches, with others falling on the extremes of the curve. Maybe the game isn’t as keen on doling out losing streaks as I thought?
Median kills #
You’ll notice that I rely more on medians than averages - that is intentional to avoid the bias of higher values skewing the result. For kills, across all matches, this is what the distribution looks like:
The higher values (in the hundreds) are coming from player-vs-environment (PvE) modes - Firefight (including Gruntpocalypse) and Survive The Undead matches. We might want to exclude them to get an accurate representation.
Much cleaner and easier to understand the distribution.
Median deaths #
Interestingly enough, the death distribution follows pretty closely the one for kills. I have a pretty aggressive play style (push to the enemy team instead of covering) so this is not surprising - in most of my matches the kill and death values are pretty close.
Median assists #
Assists-wise, I don’t seem to be doing too well - with a median of only 4 assists per match I need to spend more time helping the team even if I don’t get the final kill (or my team needs to be better at cleaning up my engagements - who can tell).
To make sure that I get more accurate values, the bell curve above excludes excluded data from PvE modes.
Median life duration #
I excluded PvE modes for this metric since it can skew the overall performance. I was not surprised by the average life duration distribution - room for improvement, as with any of the other metrics, but not too terrible.
Median accuracy #
This feels like a metric I can improve - a median accuracy of 37.16% is pretty bad. Slowing down and disabling sprint should hopefully help in future games.
Median KDA ratio #
Excluding PvE modes, I am glad to see that the median value is not negative. This is definitely better than what I had in Halo 5.
Median match length #
If you care about getting matches over quickly, well - surprise, the most common match is a bit over seven minutes long (at least in my experience). There’s a few that stretch beyond that, but be prepared to play around eight matches per hour.
Median damage dealt #
Median damage taken #
Median time to first kill #
One of the interesting things that is possible now due to being able to parse film files is extracting data on when I performed a specific event in-game. For example, I can track the time to first kill relative to the match timeline. This is what it looks like aggregated in similar fashion to previous median metrics:
The data here may be skewed because there are games that I’ve joined in progress, meaning that the first kill is tagged as way later in the game. Excluding those matches as well as any matches in PvE modes give a cleaner picture:
Median time to first death #
Because we already know what to exclude to get a more representative graph, I focused on just matches that were not joined in progress and were not in PvE game modes for this metric:
My aggressive play style bites once again - I die way too quickly into the match for the first time.
Median time to first medal #
When it comes to medals (which I enjoy quite a bit), I seem to be getting to them relatively quickly. They are also extremely easy to earn in any of the Husky Raid variants - getting the first award in under a minute-and-a-half since the start of the game in most matches is great.
Median match score #
Another interesting metric to think about is the personal score that I get after a match - this is what drives the overall career XP progression. Looking at the distribution across all the matches that took me to Hero, it’s clear that getting anything above 1,745 XP per match is a little less than common.
As I mentioned earlier in this blog post, I like to think that I am slightly better than average at Husky Raid, so getting higher scores there is easier for me. Would the distribution look different if we isolated the data for just Super Husky Raid?
The slope here is a bit more gradual - indeed, my scores in this mode have been much more optimistic.
I still wanted to see the match score progression over time, so I lined them up - this is what it looks like:
And of course, put together, this is what the weekly XP earnings looked like. I definitely pushed for the top rank at the end there.
Correlates pretty closely with weekly matches, doesn’t it?
There’s another last piece of data I want to dig through around personal scores - experience per minute. If we think about time spent in a match, every minute would be potentially earning some XP. How much? Let’s take a look by taking every single match and computing the score per minute.
There are some matches where I am clearly popping off, and there is a somewhat of an upwards trend - the more I play, the better I get (at least up to a certain threshold). We can now also compute a similar distribution as we’ve done above:
If I take the median value of 252.52XP/minute and juxtapose it against the required 9,319,350XP to get to Hero, it would take around 36,905.39 minutes to get to the top rank. That’s 615.08 hours - a whopping 25.62 days. Still less than what it takes to get to SR152 in Halo 5.
Correlation between end-state, life duration, and kills #
The longer you live and more kills you get, the more likely you are to win - I know, groundbreaking Halo knowledge!
Correlation between end-state, life duration, and deaths #
The corollary to the graph above is that if you die less while living longer, you are more likely to win as well. Most losses are concentrated around the axis of “short life, lots of deaths.”
Correlation between end-state, deaths, and kills #
A very clear representation of the idea that if you have more kills than deaths, wins are more likely to happen. Not that the outcome can’t be different if the ratio is reversed, but then you would be relying on your teammates carrying your match.
Correlation between end-state, callout assists, and kills #
Correlation between match length, kills, and end-state #
There are two interesting observations here. First, notice that all ties are concentrated at the very right edge. That’s because that’s when the match duration is hitting the overtime limits and if there is no win or lose, it’s obviously a tie. Second - quite a few matches hit the time limit before the overtime too (that’s that vertical pattern before the ties), where the match ends even if all objectives are not completed because there is another team in the lead.
It’s also interesting to see that compared to the match duration you have to maintain a certain “kill ratio” to be able to nudge the game towards a win. The moment you start lagging behind, you’re more likely to lose (i.e., match goes on and you aren’t catching up on kills).
Correlation between match length, personal score, and end-state #
Very similar observations to the above, with a pivot on personal score. The more the match goes on - the more you should keep up with trying to do things that increase your score (i.e., go after kills, score flags, etc.). The better I was able to grow my score, the more likely I was to win.
Medals earned #
Double Kill is by far one of the easiest medals to get. I am also that annoying player that keeps tagging enemies when I see them. It’s almost instinct at this point, so Shot Caller became my next favorite medal to earn, and the numbers reflect that.
Medals earned per match #
As my proficiency with Halo grew, so did the number of medals I earned per match. You can very clearly see that change match-over-match for the past year.
That also correlates with the volume of games played - the more matches I was partaking in, the more medals I earned. See my monthly medal counts:
Getting to nine medals per match being the median was also nice - that meant that I was actually doing some interesting things during games that warranted special awards (like earning Extermination medals).
Percentage of matches where I was top of the board #
Out of all the matches that I played, I also got curious - how many of them I was actually the top performer within my team, regardless of the outcome? Turns out, a few:
Here is what it looks like juxtaposed against the total matches played in a given week:
Or, if you like to think in percentages:
Pretty nice to see how many weeks I’ve had more than 50% of matches where I was the top performer on the team. The “Average Player” label lives on for me!
Friendly/enemy team MMR variability #
Every point on the scatter plot is one match. It’s interesting to see just how many matches have a fair distribution of MMRs. There are, of course, outliers (my team MMR being ~1,050 and the enemy team being around ~1,750 certainly stung) but they are not very common.
It’s also clear that the moment the enemy team MMR shifts upwards compared to your own, losses start accumulating. Anything below the diagonal tends to stick to good outcomes. Anything above - less so.
Volume of matches played per day/time #
I mostly play after work, late evenings, or on the weekend. This was neat to see, but not exactly taking me by surprise. And clearly I am leveraging some free weekdays (i.e., vacations, national holidays) to clock in a few Halo Infinite matches too.
Winning likelihood depending on time of day #
Somehow, Fridays seem to be the most optimal days for winning games consistently at a higher rate. Saturday afternoons, when lots of people are home, somehow are the worst. Could also be sampling and skill bias on my part.
Conclusion #
Well this was one heck of a write-up! Never in my life have I analyzed any video game progress in this much detail. I hope this was helpful for you as you embark on your own Hero journey. Would love to hear your thoughts and feedback!